﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Domain.Entitys
{
    /// <summary>
    /// 培训登记表
    /// </summary>
    public class Training
    {
        /// <summary>
        /// 唯一标识符，作为主键且为自动增长列，用于在系统中唯一确定该员工培训记录，类型为整数。
        /// </summary>
        public int TrId { get; set; }

        /// <summary>
        /// 职位分类编号，用于区分不同的职位分类，便于在系统内进行职位相关的识别、关联以及业务操作，类型为字符串（可根据实际编号格式调整具体类型）。
        /// </summary>
        public string MajorKindId { get; set; }

        /// <summary>
        /// 职位分类名称，直观展示该职位分类的具体称呼，便于用户识别和理解，类型为字符串。
        /// </summary>
        public string MajorKindName { get; set; }

        /// <summary>
        /// 职位编号，用于唯一标识不同的职位，方便进行职位相关的各种操作及数据关联，类型为字符串（具体类型可按实际编号规则确定）。
        /// </summary>
        public string MajorId { get; set; }

        /// <summary>
        /// 职位名称，便于清晰呈现职位的具体称谓，有助于用户区分不同职位，类型为字符串。
        /// </summary>
        public string MajorName { get; set; }

        /// <summary>
        /// 人力资源档案编号，用于关联到对应的员工档案，确定是哪位员工参加的培训，类型为字符串（可根据档案编号格式确定具体类型）。
        /// </summary>
        public string HumanId { get; set; }

        /// <summary>
        /// 姓名，记录参加培训的员工姓名，类型为字符串。
        /// </summary>
        public string HumanName { get; set; }

        /// <summary>
        /// 培训项目，清晰呈现该培训具体指代的内容，如"领导力培训"、"技术技能培训"等，类型为字符串。
        /// </summary>
        public string TrainingItem { get; set; }

        /// <summary>
        /// 培训时间，记录培训开展的具体时间，类型为DateTime。
        /// </summary>
        public DateTime TrainingTime { get; set; }

        /// <summary>
        /// 培训课时，记录该培训的时长，以课时为单位，类型为整数。
        /// </summary>
        public int TrainingHour { get; set; }

        /// <summary>
        /// 培训成绩等级，用于记录员工在培训后的成绩评定等级，如"优秀"、"良好"、"合格"等，类型为字符串（可根据实际成绩等级设定格式确定类型）。
        /// </summary>
        public string TrainingDegree { get; set; }

        /// <summary>
        /// 登记人，记录最初将该培训信息录入系统的人员相关信息，类型为字符串。
        /// </summary>
        public string Register { get; set; }

        /// <summary>
        /// 复核人，明确负责对该培训信息进行复核操作的人员相关信息，类型为字符串。
        /// </summary>
        public string Checker { get; set; }

        /// <summary>
        /// 登记时间，记录培训信息在系统中首次登记的时间，类型为DateTime。
        /// </summary>
        public DateTime RegistTime { get; set; }

        /// <summary>
        /// 复核时间，对应培训信息复核操作完成的时间点，类型为DateTime。
        /// </summary>
        public DateTime CheckTime { get; set; }

        /// <summary>
        /// 培训复核状态，用于标记该培训信息当前是否经过复核以及复核的结果情况等，类型为字符串（常见取值如"已复核"、"待复核"等）。
        /// </summary>
        public string Checkstatus { get; set; }

        /// <summary>
        /// 备注，用于添加关于该培训的额外说明、特殊情况记录等，类型为字符串。
        /// </summary>
        public string Remark { get; set; }
    }
}
